Welcome to pandas!

6.3 分层索引的4种方法

关于分层索引数据的呈现方式,还可以使用Multindex类下面的函数来设置,分别按数组,元组,笛卡尔积,DateFrame这4种方式来设置分层索引,

1、按数组

import pandas as pd

l=[[ "A组","A组","B组","B组" ],[ "1","2","3","4" ]]

i=pd.MultiIndex.from_arrays(l,names=[ "组名","工号" ])

df=pd.Series([ "张三","李四","王麻子","小曾" ], index =i)

print (df)

返回:

A组 1 张三
2 李四
B组 3 王麻子
4 小曾

dtype: object


2、按元组

import pandas as pd

l=[( "A组","1" ),( "A组","2" ),( "B组","3" ),( "B组","4" )]

i=pd.MultiIndex.from_tuples(l,names=[ "组名","工号" ])

df=pd.Series([ "张三","李四","王麻子","小曾" ], index =i)

print (df)

返回:和上面结果是一样的


3、按笛卡尔积

import pandas as pd

l=[( "A组","B组" ),( "1","2" )]

i=pd.MultiIndex.from_product(l,names=[ "组名","工号" ])

df=pd.Series([ "张三","李四","王麻子","小曾" ], index =i)

print (df)

返回:

组名 工号
A组 1 张三
2 李四
B组 1 王麻子
2 小曾

dtype: object


4、按DateFrame

import pandas as pd

df=pd.DataFrame({

"组别" :[ "A组","A组","B组","B组" ],

"工号" : [ "1", "2", "3", "4" ]

})

i=pd.MultiIndex.from_frame(df)

s=pd.Series([ "张三","李四","王麻子","小曾" ], index =i)

print (s)

返回同1、2结果是一样的